/*
 *  Programa para realizar una llamada perdida a un movil
    usando un modulo GPRS con placa Arduino por AjpdSoft
 */

int pinLED = 13;
int pinActivarGPRS = 2;  // pin para activar el módulo GPRS

int timesToSend = 1;  // numero de llamadas a realizar
int contador = 0;  //para solo repetir una vez el loop

void activarModuloGPRS()
{
  digitalWrite(pinActivarGPRS, HIGH);
  delay(2000);
  digitalWrite(pinActivarGPRS, LOW);
}


void ledBlink(int on, int off)
{
    digitalWrite(pinLED, HIGH);
    delay(on);
    digitalWrite(pinLED, LOW);
    delay (off);
}
  
  
void setup()
{
  pinMode(pinLED, OUTPUT);
  pinMode(pinActivarGPRS, OUTPUT);

  Serial.begin(19200);   //velocidad de conexión con módulo GPRS GSM
    
  activarModuloGPRS();   //activamos el modo GPRS GSM
 
  
  //esperamos 20 segundos a que se active el módulo GPRS  
  for (int wait = 0; wait < 10; wait++)
    ledBlink(1000,1000); 

}

void loop()
{
  while (contador < timesToSend)
  {
    delay(1500);
    
    //Destello 5 veces indica inicio
    for (int i = 0; i < 5 ; i++)
      ledBlink(100, 100);

    Serial.println("ATD653554133;"); //numero_movil numero al que realizaremos la llamada
    delay(12000); 
    Serial.println("ATH"); //colgaremos y finalizaremos la llamada
       
    delay(5000);        

    contador++;    
  }

  if (contador == timesToSend)
  {
    Serial.println("AT*PSCPOF");    // desactivar el módulo GPRS
    contador++;
    
    //Destello 3 veces indica fin
    for (int i = 0; i < 3 ; i++)
      ledBlink(100,100);

  }
}
